/**
 * 风险监控配置文件
 * 定义各种风险阈值和检测规则
 */

module.exports = {
	// 任务违约风险配置
	taskDefault: {
		// 违约率阈值
		highRiskThreshold: 15.0,    // 违约率超过15%为高风险
		mediumRiskThreshold: 10.0,  // 违约率超过10%为中风险
		lowRiskThreshold: 5.0,      // 违约率超过5%为低风险
		
		// 最小样本数量（少于此数量不进行风险评估）
		minSampleSize: 10,
		
		// 风险任务类型映射
		riskTypeMapping: {
			'buy': { name: '代购服务', riskWeight: 1.2 },
			'sell': { name: '出售物品', riskWeight: 1.0 },
			'express': { name: '快递代取', riskWeight: 0.8 },
			'other': { name: '其他服务', riskWeight: 1.1 }
		}
	},
	
	// 用户违规风险配置
	userViolation: {
		// 违规次数阈值
		highRiskThreshold: 5,       // 违规5次以上为高风险用户
		mediumRiskThreshold: 3,     // 违规3-4次为中风险用户
		lowRiskThreshold: 2,        // 违规2次为低风险用户
		
		// 时间窗口（天）
		timeWindow: 30,
		
		// 违规类型权重
		violationTypeWeights: {
			'fraud': 3.0,           // 欺诈行为
			'spam': 2.0,            // 垃圾信息
			'abuse': 2.5,           // 恶意行为
			'default': 1.0          // 其他违规
		}
	},
	
	// 交易异常风险配置
	transactionAnomaly: {
		// 低价任务检测
		lowPriceTask: {
			priceThreshold: 10,     // 低于10元认为是低价任务
			countThreshold: 5,      // 24小时内发布5个以上低价任务
			timeWindow: 24          // 时间窗口（小时）
		},
		
		// 退款异常检测
		refundAnomaly: {
			countThreshold: 3,      // 30天内退款3次以上
			timeWindow: 30,         // 时间窗口（天）
			amountThreshold: 500    // 退款总额阈值
		},
		
		// 账户关联检测
		accountLinking: {
			ipThreshold: 5,         // 同一IP注册5个以上账户
			deviceThreshold: 3,     // 同一设备登录3个以上账户
			behaviorSimilarity: 0.8 // 行为相似度阈值
		}
	},
	
	// 整体风险等级计算
	overallRisk: {
		weights: {
			taskDefault: 0.3,       // 任务违约风险权重
			userViolation: 0.4,     // 用户违规风险权重
			transactionAnomaly: 0.3 // 交易异常风险权重
		},
		
		thresholds: {
			high: 70,               // 综合风险评分70以上为高风险
			medium: 40,             // 综合风险评分40-70为中风险
			low: 20                 // 综合风险评分20-40为低风险
		}
	},
	
	// 自动化处理配置
	automation: {
		// 自动警告阈值
		autoWarning: {
			enabled: true,
			userViolationThreshold: 3,
			taskDefaultThreshold: 20.0
		},
		
		// 自动限制阈值
		autoRestriction: {
			enabled: false,
			userViolationThreshold: 5,
			taskDefaultThreshold: 30.0
		}
	},
	
	// 通知配置
	notification: {
		// 风险预警通知
		riskAlert: {
			enabled: true,
			channels: ['admin', 'email'],
			highRiskImmediate: true,
			mediumRiskDaily: true
		},
		
		// 管理员通知
		adminNotification: {
			enabled: true,
			threshold: 'medium',
			includeDetails: true
		}
	}
};
